`define ALUCONTROL_AND 5'b00000
`define ALUCONTROL_OR 5'b00001
`define ALUCONTROL_NOR 5'b00010
`define ALUCONTROL_XOR 5'b00011
`define ALUCONTROL_SLL 5'b00100
`define ALUCONTROL_SRL 5'b00101
`define ALUCONTROL_SRA 5'b00110
`define ALUCONTROL_ADD 5'b01010
`define ALUCONTROL_SUB 5'b01011
`define ALUCONTROL_SLT 5'b01100
`define ALUCONTROL_MULT 5'b01101
`define ALUCONTROL_DIV 5'b01110
`define ALUCONTROL_ADDU 5'b01111
`define ALUCONTROL_SUBU 5'b10000
`define ALUCONTROL_MULTU 5'b10001
`define ALUCONTROL_DIVU 5'b10010
`define ALUCONTROL_SLTU 5'b10011
`define ALUCONTROL_LUI 5'b10100
`define ALUCONTROL_SLLV 5'b00111
`define ALUCONTROL_SRAV 5'b01000
`define ALUCONTROL_SRLV 5'b01001
`define ALUCONTROL_MFHI 5'b10101
`define ALUCONTROL_MFLO 5'b10110
`define ALUCONTROL_MTHI 5'b10111
`define ALUCONTROL_MTLO 5'b11000
`define ALUCONTROL_MTC0 5'b11001
`define ALUCONTROL_MFC0 5'b11010
// rest code remained to be allocated
//         11010 11011  11100  11101  11110 
